using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;

using System.Collections.Generic;
using System.Text;

public partial class Reporte_GMapsActividadEstado : PageController
{
    ActividadReporteBean actividadReporte;
    List<FotoDato> listaFoto = null;
    StringBuilder sb = null;

    protected override void initialize()
    {

        if (!IsPostBack)
        {
            hidRegistro.Value = Request.QueryString["idregistro"].ToString().Trim();

            actividadReporte = DBActividad.getActividadEstadoReporteBeanPK(hidRegistro.Value);

            if (actividadReporte != null)
            {
                hidRegistro.Value = actividadReporte.codigoactividad;
                hidUsuario.Value = actividadReporte.codigousuario;
                hidFecha.Value = actividadReporte.FECHAMOVIL;

                //Datos de cabecera
                lblNomUsuario.Text = actividadReporte.nombreusuario;
                lblFechaReporte.Text = StringUtils.getFechaActual();

                lblActividad.Text = actividadReporte.nombreactividad;
                lblEstado.Text = actividadReporte.nombreestado;

                //Datos de pie
                lblObservacion.Text = actividadReporte.observacion;
                lblEntrega.Text = actividadReporte.nombreentrega;
                lblNoEntrega.Text = actividadReporte.nombrenovisita;
                lblFechaRegistro.Text = actividadReporte.fechamovil;

                dibujarMapa();

            }

        }

      
    }

    private void dibujarMapa()
    {
        if (actividadReporte.latitud != null && actividadReporte.latitud != "")
        {
            Literal ltrPuntoCentral = (Literal)FindControl("ltrPuntoCentral");
            ltrPuntoCentral.Text = getPuntoCentral();

            Literal ltrPoints = (Literal)FindControl("ltrPoints");
            ltrPoints.Text = obtenerTextoPoints();

            Literal ltrFoto = (Literal)FindControl("ltrFoto");
            ltrFoto.Text = textoFoto(actividadReporte.codigousuario, actividadReporte.fechamovil);
        }
        else
        {
            lblMensaje.Visible = true;
        }


    }


    private String textoFoto(String codigoUsuario, String fecha)
    {
        List<FotoDato> listaFoto = null;

        StringBuilder xml = new StringBuilder();

        listaFoto = DBActividad.findReporteActividadEstadoFotoBean(codigoUsuario, fecha);

        Int64 i = 0;

        foreach (FotoDato bean in listaFoto)
        {
            string var = i == 0 ? "" : "|";

            xml.Append(String.Format(var + "{0}",
            Tarea.borraBarraComa(bean.IdFoto)) //0
            );
            i++;
        }

        return "'" + xml.ToString() + "'";

    }


    #region PUNTO CENTRAL
    private string getPuntoCentral( )
    {
          return String.Format("new google.maps.LatLng({0}, {1})", actividadReporte.latitud, actividadReporte.longitud);
         
    }
    #endregion


    #region texto puntos

    private string obtenerTextoPoints()
    {
        String showInfo = String.Empty;
        String textoInfo = String.Empty;

        if (validaCoordenada(actividadReporte.longitud, actividadReporte.latitud))
        {

            String idRegistro = actividadReporte.id.Trim();
            String latitud = actividadReporte.latitud.Trim();
            String longitud = actividadReporte.longitud.Trim();
            String idUsuario = actividadReporte.codigousuario.Trim();
            String fechaMovil = actividadReporte.fechamovil.Trim();
            String fechaMovilMostrar = actividadReporte.fechamovil.Trim();
            String numeracion = "1";
            String actividad = actividadReporte.codigoactividad.Trim() + " - ";
            String estado = actividadReporte.nombreestado.Trim();
            String entrega = "";
            String novisita = "";
            String observacion = actividadReporte.observacion.Trim();
            //String strFotos = strPhotoPoint;

            String strEntrega = "", strNoVisita = "", strObservacion = "";

            if (entrega.Length > 0)
            {
                strEntrega = "<B>" + IdiomaCultura.getMensaje(IdiomaCultura.WEB_ENTREGA)+  ":</B> " + entrega + "<BR />";
            }
            if (novisita.Length > 0)
            {
                strNoVisita = "<B>" + IdiomaCultura.getMensaje(IdiomaCultura.WEB_NOVISITA).ToUpper() + ":</B> " + novisita + "<BR />";
            }
            if (observacion.Length > 0)
            {
                strObservacion = "<B>" + IdiomaCultura.getMensaje(IdiomaCultura.WEB_OBSERVACION_UPPER) + ":</B> " + observacion + "<BR />";
            }

            showInfo =
                "<B>" + IdiomaCultura.getMensaje(IdiomaCultura.WEB_ACTIVIDAD).ToUpper() + ":</B> " + actividad.Trim() + "<BR />" +
                "<B>" + IdiomaCultura.getMensaje(IdiomaCultura.WEB_ESTADOS).ToUpper() + ":</B> " + estado.Trim() + "<BR />" +
                "<B>" + IdiomaCultura.getMensaje(IdiomaCultura.WEB_FECHAMOVIL).ToUpper() + ":</B> " + fechaMovilMostrar.Trim() + "<BR />" +
                strEntrega.Trim() + strNoVisita.Trim() + strObservacion.Trim();
                
        }
        return showInfo;
    }
    #endregion


    #region VALIDACION COORDENADA
    private bool validaCoordenada(String longitud, String latitud)
    {

        if (!longitud.Equals("") && !latitud.Equals("") && double.Parse(longitud) != 0 && double.Parse(latitud) != 0)
        {
            return true;
        }

        return false;
    }
    #endregion
}
